package com.googlecode.kipler.satisfiability.reasoner.profile;

import com.googlecode.kipler.container.dl.creational.WcsFactory;
import com.googlecode.kipler.satisfiability.completion.strategy.CompletionStrategy;
import com.googlecode.kipler.transformations.SyntacticalProcessingStrategy;


/**
 * 
 * @author İnanç Seylan
 *
 */
public interface ReasoningProfile {
	public String getIdentifier();

	public CompletionStrategy getCompletionStrategy();

	public SyntacticalProcessingStrategy getPreprocessingStrategy();

	public boolean isLoggingEnabled();
	
	public ReasoningProfile toggleLogging();
	
	public boolean isBackjumpingEnabled();
	
	public ReasoningProfile toggleBackjumping();
	
	public boolean isUnfoldableTBoxEnabled();
	
	public ReasoningProfile toggleUnfoldableTBox();
	
	public boolean isInterpolationEnabled();
	
	public ReasoningProfile toggleInterpolation();

	public WcsFactory getWcsFactory();
}
